package com.csw.mysqldate.util;


import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class NoNullUtil {
    public static void main(String[] args) {
        //保证在非null,非空里取值
        //转为非null
        List list = getNotNullList(null);
        //list的get一定要在不等于null的for循环里
        for (int i = 0; i < list.size(); i++) {//遍历即判空
            list = list;
        }
        //list判非空
        if (isNotEmptyList(null) == false) {
            System.out.println("false-list");
        }


        //保证在非null取值，取值转非null
        Map map = getNotNullMap(null);
        String mapValue = (String) getNotNullMapValue(null, "noKey");
        //list判非空
        if (isNotEmptyMap(null) == false) {
            System.out.println("false-map");
        }

        //String转非null
        String str = getNotNullString(null);
        //String判空
        if (isNoEmptyString(null) == false) {
            System.out.println("false-str");
        }

    }

    /**
     * 判断 string 是否为空  true为非空
     *
     * @param str
     * @return
     */
    public static boolean isNoEmptyString(String str) {
        str = getNotNullString(str);
        return !StringUtils.isEmpty(str);
    }

    //string 转非null
    public static String getNotNullString(String value) {
        if (value == null) {
            value = "";
        }
        return value;
    }

    /**
     * 判断 list 是否为空  true为非空
     *
     * @param list
     * @return
     */
    public static boolean isNotEmptyList(List list) {
        list = getNotNullList(list);
        return list.size() > 0;
    }

    //list 转非null
    public static List getNotNullList(List list) {
        if (list == null) {
            list = new ArrayList();
        }
        return list;
    }

    /**
     * 判断 map 是否为空  true为非空
     *
     * @param map
     * @return
     */
    public static boolean isNotEmptyMap(Map map) {
        map = getNotNullMap(map);
        return map.size() > 0;
    }

    //map获取值转非null
    public static Object getNotNullMapValue(Map map, String key) {
        map = getNotNullMap(map);
        return map.get(key) == null ? "" : map.get(key);
    }

    //map 转非null
    public static Map getNotNullMap(Map map) {
        if (map == null) {
            map = new HashMap();
        }
        return map;
    }


}
